#ifndef AST_DECLARATIONS_INITIALIZER_LIST_H
#define AST_DECLARATIONS_INITIALIZER_LIST_H

#include "../ASTNode.h"

class Designation;
class Initializer;

/*
C99   6.7.8
initializer-list:
		designation(opt)   initializer
		initializer-list   ,   designation(opt)   initializer
*/
class InitializerList : public ASTNode
{
protected:
	InitializerList(void)
		: ASTNode(ASTNode::initializer_list){};
public:
	InitializerList(Initializer *pInit, Designation *pDesignation, InitializerList *pInitList)
		: ASTNode(ASTNode::initializer_list)
		, m_pInit(pInit)
		, m_pInitList(pInitList){};

	virtual ~InitializerList(void);

	virtual void					codeGen();

protected:
	Designation *					m_pDesignation;//may be NULL
	Initializer *					m_pInit;
	InitializerList *					m_pInitList;	//may be NULL
};


#endif

